/* The file is saved in UTF-8 codepage.
 * Check: «Stereotype», Section mark-§, Copyright-©, Alpha-α, Beta-β, Smile-☺
 */
package cz.pecinovsky.english.lootp.manager;



////////////////////////////////////////////////////////////////////////////////
//%%+  +++++ End of ignored starting test - place for imports +++++

//%A+ >=133x
import cz.pecinovsky.english.lootp.utility.Size;
//%A-

//%X+ xxxxx Start of the ovejumped text with declaration of the envelope xxxxx
/*******************************************************************************
 *<pre>
 * Previous:  {@link cz.pecinovsky.english.lootp.shape.IMoveable}
 * Following: No
 *
 * Project  114 - Mediator and listener
 *        >=119 - Interface implementation
 *   ¤ No visible changes. The basic change is alteration of the project
 *     that swithces from {@link cz.pecinovsky.english.lootp.shape.Canvas}
 *     to {@link cz.pecinovsky.english.lootp.shape.CanvasManager}.
 *
 * Projekt  125c - Crate (transport object)
 *   ~ Alteration of the declared method in cinsequence of
 *     introduction of transport objects (crates)
 *
 * Projekt  133z - Packages
 *   + Import of classes and interfaces moved into other packages added
 *</pre>
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
////////////////////////////////////////////////////////////////////////////////
//%X- ----- End of the ovejumped text with declaration of the envelope -----


/*******************************************************************************
 * Instances of interface {@code IResizeable} represents geometrical shapes
 * that can reveal and set their dimensions.
 * The size of a shape is defined as the size
 * of its circumscribe rectangle.
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
public interface IResizeable extends IPaintable
{
//== CONSTANT CLASS ATTRIBUTES =================================================
//== VARIABLE CLASS ATTRIBUTES =================================================
//%X+ >125

    /***************************************************************************
     * Returns the object width.
     * The size of instance is defined as the size
     * of the circumscribe rectangle.
     *
     * @return  Object width
     */
//     @Override
    public int getWidth();


    /***************************************************************************
     * Returns the object height.
     * The size of instance is defined as the size
     * of the circumscribe rectangle.
     *
     * @return  Object height
     */
//     @Override
    public int getHeight();

//%X-
//%A+ >125

    /***************************************************************************
     * Returns instance of the class {@code Size} with current dimensions.
     * The size of instance is defined as the size
     * of the circumscribe rectangle.
     *
     * @return Instance of the class {@code Size} with current dimensions
     */
//     @Override
    public Size getSize();


    /***************************************************************************
     * Set dimensions of the object.
     * The size of instance is defined as the size
     * of the circumscribe rectangle.
     * The set dimensions must be non-negative,
     * the zero value is substituted by one.
     *
     * @param size The set size
     */
//     @Override
    public void setSize(Size size);

//%A-

    /***************************************************************************
     * Set dimensions of the object.
     * The size of instance is defined as the size
     * of the circumscribe rectangle.
     * The set dimensions must be non-negative,
     * the zero value is substituted by one.
     *
     * @param width    The newly set width;  width  >= 0
     * @param height   The newly set height; height >= 0
     */
//     @Override
    public void setSize(int width, int height);



//== INHERITED METHODS =========================================================
//== EMBEDDED DATA TYPES =======================================================
}
